import jWeixin from 'weixin-js-sdk'
// import {
// 	myRequest
// } from "@/common/js/api.js";

// let href = function(url){
// 	window.location.href = ''+url //正式环境
// 	// window.location.href = 'http://localhost:8080/#'+url //开发环境
// }

//截取地址中的code
let getUrlCode = function() {
	// 截取url中的code方法
	var url = location.search;
	var theRequest = new Object();
	if (url.indexOf("?") != -1) {
	var str = url.substr(1);
	var strs = str.split("&");
	for (var i = 0; i < strs.length; i++) {
	  theRequest[strs[i].split("=")[0]] = strs[i].split("=")[1];
	}
	}
	console.log(theRequest);
	return theRequest;
}

/* 判断是否在微信中 */
let isWechat = function(content) {
	var ua = window.navigator.userAgent.toLowerCase();
	if (ua.match(/micromessenger/i) == 'micromessenger') {
		//console.log('是微信客户端')  
		return true;
	} else {
		//console.log('不是微信客户端')  
		//以下是我项目中所需要的操作其他，可以自定义
		if(content){
			uni.showModal({
				title: '提示',
				content:content?content:'请在微信浏览器中打开',
				showCancel: false,
				success: function(res) {
					if (res.confirm) {
						// console.log('用户点击确定');
					} else if (res.cancel) {
						// console.log('用户点击取消');
					}
				}
			});
		}
		
		return false;
	}
}

let JsApiPay = (jsApiParameters) => {
	return new Promise((resolve, reject) => {
		if (isWechat('请在微信中打开链接进行支付')) {
			WeixinJSBridge.invoke(
				'getBrandWCPayRequest',
				jsApiParameters,
				function(res) {
					if (res.err_msg == 'get_brand_wcpay_request:ok') {
						resolve(res)
						// myRequest({
						// 	method: "POST",
						// 	url: `/index/order/orderStatus6`,
						// 	data:{
						// 		order_sn: order_sn,
						// 		login_code: data.login_code,
						// 		user_id: data.user_id,
						// 		web_type: "H5"
						// 	}
						// }).then((res) => {
						// 	uni.showModal({
						// 		title: '提示',
						// 		content: '支付成功',
						// 		showCancel: false,
						// 		success: function(res) {
						// 			if (res.confirm) {
						// 				// console.log('用户点击确定');
						// 				uni.reLaunch({
						// 					url:'/pages/me/me_index'
						// 				})
						// 			} else if (res.cancel) {
						// 				// console.log('用户点击取消');
						// 			}
						// 		}
						// 	});
						// })
					} else {
						if (res.err_msg == 'get_brand_wcpay_request:cancel') {
							reject(res)
						} else {
							reject(res)
						}
					}
				}
			);
		} else {
			reject()
		}


		// myRequest({
		// 	method: "POST",
		// 	url: `/index/order/orderCreate4`,
		// 	data
		// }).then((res) => {
		// 	let jsApiParameters = res.data.data.jsapi
		// 	let order_sn = res.data.data.order_sn
		// 	//方式一：WeixinJSBridge拉起支付，微信浏览器内置对象
		// 	WeixinJSBridge.invoke(
		// 		'getBrandWCPayRequest',
		// 		jsApiParameters,
		// 		function(res) {
		// 			if (res.err_msg == 'get_brand_wcpay_request:ok') {
		// 				myRequest({
		// 					method: "POST",
		// 					url: `/index/order/orderStatus6`,
		// 					data:{
		// 						order_sn: order_sn,
		// 						login_code: data.login_code,
		// 						user_id: data.user_id,
		// 						web_type: "H5"
		// 					}
		// 				}).then((res) => {
		// 					uni.showModal({
		// 						title: '提示',
		// 						content: '支付成功',
		// 						showCancel: false,
		// 						success: function(res) {
		// 							if (res.confirm) {
		// 								// console.log('用户点击确定');
		// 								uni.reLaunch({
		// 									url:'/pages/me/me_index'
		// 								})
		// 							} else if (res.cancel) {
		// 								// console.log('用户点击取消');
		// 							}
		// 						}
		// 					});
		// 				})
		// 			} else {
		// 				if (res.err_msg == 'get_brand_wcpay_request:cancel') {
		// 					resolve(res)
		// 				} else {
		// 					resolve(res)
		// 				}
		// 			}
		// 		}
		// 	);

		//方式二：JS-SDK拉起支付，需引入WX_JS_SDK
		// jWeixin.config({
		//    debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
		//    appId: jsApiParameters.appId, // 必填，公众号的唯一标识
		//    timestamp: jsApiParameters.timestamp, // 必填，生成签名的时间戳
		//    nonceStr: jsApiParameters.nonceStr, // 必填，生成签名的随机串
		//    signature: jsApiParameters.signature, // 必填，签名
		//    jsApiList: [
		//      // "showMenuItems",
		//      "chooseWXPay",
		//    ], // 必填，需要使用的JS接口列表
		//  });
		//  jWeixin.ready(function () {
		//  	console.log('wx pay init success!!!!')
		//    jWeixin.showOptionMenu();
		//  });

		// jWeixin.chooseWXPay({
		//     timestamp: jsApiParameters.timeStamp, // 支付签名时间戳，注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
		//     nonceStr: jsApiParameters.nonceStr, // 支付签名随机串，不长于 32 位
		//     package: jsApiParameters.package, // 统一支付接口返回的prepay_id参数值，提交格式如：prepay_id=\*\*\*）
		//     signType: jsApiParameters.signType, // 签名方式，默认为'SHA1'，使用新版支付需传入'MD5'
		//     paySign: jsApiParameters.paySign, // 支付签名
		//  success: (res) => {
		//        // 支付成功 后的回调函数
		//        Toast('pay success')
		//      }, //success()
		//  cancel: (error) => {
		//    // 取消支付
		//    Toast('取消支付！')

		//  },
		//  fail: (error) => {
		// 	console.log(error, 'error')
		//  }
		// });

	})
}


/* 获取sdk初始化配置  可用于引入微信开放标签*/
let initJssdk = function(callback) {
	let that = this
	let url = window.location.href
	myRequest({
		url: `xxx`, //获取jsApiParameters
		method: "GET"
	}).then((res) => {
		if (res.code != 200) {
			uni.showToast({
				title: res.msg,
				duration: 3000,
				icon: 'error'
			});
			return
		} else { //请求成功，开始登陆
			jWeixin.config({
				debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
				beta: true,
				appId: 'wxb1983************7b', // 必填，公众号的唯一标识
				timestamp: res.data.timestamp, // 必填，生成签名的时间戳
				nonceStr: res.data.nonceStr, // 必填，生成签名的随机串
				signature: res.data.signature, // 必填，签名
				jsApiList: ['openLocation'], // 必填，需要使用的JS接口列表
				openTagList: ['wx-open-launch-weapp'] // 非必填，
			});
			/* wx.hideAllNonBaseMenuItem(); */
			jWeixin.checkJsApi({
				jsApiList: ['openLocation'], // 需要检测的JS接口列表，所有JS接口列表见附录2,
				openTagList: ['wx-open-launch-weapp'] // 需要检测的微信公众号开放标签,
			});
			// 	jWeixin.ready(function(res2) {

			// 		// config信息验证后会执行ready方法，所有接口调用都必须在config接口获得结果之后，config是一个客户端的异步操作，所以如果需要在页面加载时就调用相关接口，则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口，则可以直接调用，不需要放在ready函数中。
			// 	});
			// 	jWeixin.error(function(res2) {


			// 		// config信息验证失败会执行error函数，如签名过期导致验证失败，具体错误信息可以打开config的debug模式查看，也可以在返回的res参数中查看，对于SPA可以在这里更新签名。
			// 	});

			if (callback) {
				callback(res.data);
			}
		}
	}).catch((res) => {
		console.log(res.data)
	})
}
//在需要定位页面调用  
let getlocation = function(callback) {
	if (!this.isWechat()) {
		//console.log('不是微信客户端')  
		return;
	}
	this.initJssdk(function(res) {
		jWeixin.ready(function() {
			jWeixin.getLocation({
				type: 'gcj02', // 默认为wgs84的gps坐标，如果要返回直接给openLocation用的火星坐标，可传入'gcj02'  
				success: function(res) {
					// console.log(res);  
					callback(res)
				},
				fail: function(res) {
					console.log(res)
				},
			});
		});
	});
}
//打开位置  
let openlocation = function(data) {
	if (!this.isWechat()) {
		//console.log('不是微信客户端')  
		return;
	}
	this.initJssdk(function(res) {
		jWeixin.ready(function() {
			jWeixin.openLocation({ //根据传入的坐标打开地图  
				latitude: data.latitude,
				longitude: data.longitude,
				name: data.name, // 位置名
				address: data.address, // 地址详情说明
				scale: data.scale // 地图缩放级别,整型值,范围从1~28。默认为最大
			});
		});
	});
}


module.exports = {
	isWechat,
	JsApiPay,
	href,
	getUrlCode
}
